Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Multimedia framework</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Multimedia_framework"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Multimedia_framework rootpage-Multimedia_framework skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Multimedia framework</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1248332772">
/* start https://en.wikipedia.org/ */


.mw-parser-output .multiple-issues-text{width:95%;margin:0.2em 0}.mw-parser-output .multiple-issues-text>.mw-collapsible-content{margin-top:0.3em}.mw-parser-output .compact-ambox .ambox{border:none;border-collapse:collapse;background-color:transparent;margin:0 0 0 1.6em!important;padding:0!important;width:auto;display:block}body.mediawiki .mw-parser-output .compact-ambox .ambox.mbox-small-left{font-size:100%;width:auto;margin:0}.mw-parser-output .compact-ambox .ambox .mbox-text{padding:0!important;margin:0!important}.mw-parser-output .compact-ambox .ambox .mbox-text-span{display:list-item;line-height:1.5em;list-style-type:disc}body.skin-minerva .mw-parser-output .multiple-issues-text>.mw-collapsible-toggle,.mw-parser-output .compact-ambox .ambox .mbox-image,.mw-parser-output .compact-ambox .ambox .mbox-imageright,.mw-parser-output .compact-ambox .ambox .mbox-empty-cell,.mw-parser-output .compact-ambox .hide-when-compact{display:none}


/* end https://en.wikipedia.org/ */
</style>
<p>A <b><a href="Multimedia" title="Multimedia">multimedia</a> framework</b> is a <a href="Software_framework" title="Software framework">software framework</a> that handles <a href="Electronic_media" title="Electronic media">media</a> on a computer and through a network. A good multimedia framework offers an intuitive <a href="Application_programming_interface" class="mw-redirect" title="Application programming interface">API</a> and a modular architecture to easily add support for new audio, video and <a href="Container_format_(digital)" class="mw-redirect" title="Container format (digital)">container</a> formats and <a href="Streaming_media" title="Streaming media">transmission protocols</a>. It is meant to be used by applications such as <a href="Media_player_(application_software)" class="mw-redirect" title="Media player (application software)">media players</a> and <a href="Digital_audio_editor" class="mw-redirect" title="Digital audio editor">audio</a> or <a href="Video_editing_software" title="Video editing software">video editors</a>, but can also be used to build <a href="Videoconferencing" class="mw-redirect" title="Videoconferencing">videoconferencing</a> applications, media converters and other multimedia tools. Data is processed among modules automatically, it is unnecessary for app to pass buffers between connected modules one by one.
</p><p>In contrast to <a href="Library_(computing)" title="Library (computing)">function libraries</a>, a multimedia framework provides a <a href="Run-time_system" class="mw-redirect" title="Run-time system">run time environment</a> for the media processing. Ideally such an environment provides execution contexts for the media processing blocks separated from the application using the framework. The separation supports the independent processing of multimedia data in a timely manner. These separate contexts can be implemented as <a href="Thread_(computer_science)" class="mw-redirect" title="Thread (computer science)">threads</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Overview">Overview</h2></div>
<p>Multimedia frameworks act as an abstraction layer, simplifying the complexity of handling multimedia data formats, decoding and encoding streams, synchronizing audio and video playback, and managing multimedia resources. They provide a consistent interface for developers to access various multimedia components and services offered by the underlying operating system or hardware.
</p>
<div class="mw-heading mw-heading2"><h2 id="Functionality">Functionality</h2></div>
<p>Modern multimedia frameworks typically offer a wide range of functionality, including but not limited to:
</p>
<ol><li>Codec Support: Multimedia frameworks often incorporate codecs for various audio and video formats, allowing developers to easily encode, decode, and manipulate multimedia data.</li>
<li>Synchronization: These frameworks provide mechanisms to synchronize audio and video streams, maintaining proper lip-sync and smooth playback.</li>
<li>Playback Control: Multimedia frameworks offer playback control features, such as play, pause, stop, seek, and volume adjustment, allowing developers to create interactive multimedia applications.</li>
<li>Streaming: Many frameworks support the streaming of multimedia content over networks, enabling real-time delivery and playback.</li>
<li>Capturing and Recording: Multimedia frameworks often include APIs for capturing audio and video from devices like cameras and microphones, as well as recording multimedia streams.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></li></ol>
<div class="mw-heading mw-heading2"><h2 id="Popular_Multimedia_Frameworks">Popular Multimedia Frameworks</h2></div>
<p>Several prominent multimedia frameworks have gained widespread adoption, and they vary depending on the programming language and platform:
</p>
<ul><li><a href="GStreamer" title="GStreamer">GStreamer</a>: Developed in C but with bindings available for various languages, GStreamer is a powerful, open-source multimedia framework widely used in Linux-based systems.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></li>
<li><a href="DirectShow" title="DirectShow">DirectShow</a>: Introduced by Microsoft, DirectShow is a multimedia framework for Windows-based systems, offering extensive support for audio and video playback, capture, and streaming.</li>
<li><a href="FFmpeg" title="FFmpeg">FFmpeg</a>: Known for its extensive codec support, FFmpeg is a popular open-source multimedia framework used in a variety of platforms, including Windows, Linux, and macOS.</li>
<li><a href="AVFoundation" title="AVFoundation">AVFoundation</a>: Exclusive to Apple's platforms (macOS, iOS, tvOS), AVFoundation provides a comprehensive set of multimedia APIs for creating, editing, and playing audiovisual content.</li>
<li><a href="GPAC_Project_on_Advanced_Content" title="GPAC Project on Advanced Content">GPAC Project on Advanced Content</a> is an open-source multimedia framework focused on modularity and standards compliance.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="AVFoundation" title="AVFoundation">AVFoundation</a>, Apple QuickTime multimedia framework replacement</li>
<li><a href="DirectShow" title="DirectShow">DirectShow</a>, a multimedia framework and API produced by Microsoft for software developers to perform various operations with media files or streams.</li>
<li><a href="FFmpeg" title="FFmpeg">FFmpeg</a>, a cross-platform multimedia framework to decode, encode, transcode, mux, demux, stream, filter and play media.</li></ul>
<ul><li><a href="GStreamer" title="GStreamer">GStreamer</a>, a cross-platform pipeline-based multimedia framework</li></ul>
<ul><li><a href="Media_Foundation" title="Media Foundation">Media Foundation</a>, a COM-based multimedia framework pipeline and infrastructure platform provided by Microsoft for digital media in Windows Vista &amp; Windows 7.</li>
<li><a href="Media_Lovin'_Toolkit" title="Media Lovin' Toolkit">Media Lovin' Toolkit</a>, an open-source multimedia framework for television editing.</li>
<li><a href="Phonon_(KDE)" class="mw-redirect" title="Phonon (KDE)">Phonon</a>, a cross-platform multimedia framework from the Qt toolkit</li>
<li><a href="QuickTime" title="QuickTime">QuickTime</a>, a multimedia framework provided by Apple for <a href="Mac_OS_X" class="mw-redirect" title="Mac OS X">Mac OS</a> and <a href="Microsoft_Windows" title="Microsoft Windows">Windows</a></li>
<li><a href="VLC_Media_Player" class="mw-redirect" title="VLC Media Player">VLC Media Player</a>, a media player and a multimedia framework by the <a href="VideoLAN" title="VideoLAN">VideoLAN</a> project.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFLe_FeuvreConcolatoMoissinac2007" class="citation book cs1">Le Feuvre, Jean; Concolato, Cyril; Moissinac, Jean-Claude (2007-09-29). <a rel="nofollow" class="external text" href="https://doi.org/10.1145/1291233.1291452">"GPAC: Open source multimedia framework"</a>. <i>Proceedings of the 15th ACM international conference on Multimedia</i>. MM '07. New York, NY, USA: Association for Computing Machinery. pp.&nbsp;<span class="nowrap">1009–</span>1012. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F1291233.1291452">10.1145/1291233.1291452</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-59593-702-5</bdi>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation web cs1">[GStreamer: open source multimedia framework "GStreamer: open source multimedia framework"].</cite> <span class="cs1-visible-error citation-comment"><code class="cs1-code">{{cite web}}</code>: </span><span class="cs1-visible-error citation-comment">Check <code class="cs1-code">|url=</code> value (help)</span></span>
</li>
</ol></div></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2024-12-08" href="https://en.wikipedia.org/wiki/?title=Multimedia_framework&amp;oldid=1261879301">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>